package com.fansl.allround.common.security.jwt;

import lombok.AllArgsConstructor;
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
import org.springframework.security.oauth2.common.OAuth2AccessToken;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
import org.springframework.security.oauth2.provider.token.TokenEnhancer;

import java.util.Map;

/**
 * @author fansl
 * @Description: TODO
 * @date 2019/9/25 15:27
 */
@AllArgsConstructor
public class AllroundSysUserJwtTokenEnhancer implements TokenEnhancer {

    private AllroundSysUserJwtTokenEnhancerHandler jwtTokenEnhancerHandler;
    @Override
    public OAuth2AccessToken enhance(OAuth2AccessToken oAuth2AccessToken,
                                     OAuth2Authentication oAuth2Authentication) {
        Map<String, Object> info = jwtTokenEnhancerHandler.getInfoToToken(oAuth2Authentication);
        if(oAuth2AccessToken instanceof DefaultOAuth2AccessToken){
            if (info!=null){
                ((DefaultOAuth2AccessToken) oAuth2AccessToken).setAdditionalInformation(info);
            }
        }
        return oAuth2AccessToken;
    }
}
